package com.software.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.software.bean.ProductBean;
import com.baomidou.mybatisplus.extension.service.IService;
import com.software.dto.ProductReleaseDto;
import com.software.dto.UpdateProductDto;
import com.software.vo.ProductDetailVo;
import com.software.vo.ProductVo;

import java.util.List;
import java.util.Map;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author wyj
 * @since 2024-03-24
 */
public interface ProductService extends IService<ProductBean> {

    Integer postProductRelease(ProductReleaseDto releaseDto);

    List<ProductBean> getReleaseListByCid(Integer customerId);

    List<ProductBean> getReleaseProductList();

    Integer auditBatch(Integer[] auditIds);

    IPage<ProductBean> getAllProductDisplayList(Integer pageNum, Integer pageSize);

    Integer updateProductHomeDisplay(Integer productId, Integer isHome);

    IPage<ProductBean> getAllDisplayProduct(Integer pageSize , Integer pageNum);

    ProductDetailVo getProductDetailByProductId(Integer productId);

    List<ProductBean> getProductListByCategoryId(Integer categoryId);

    List<ProductBean> getSearchByContent(String content);

    List<Map<String, Object>> getSevenDaysReleaseCountGroupByCategory();

    Integer removeAudit(Integer productId);

    Integer deleteProductById(Integer productId);

    Integer auditRejected(Integer id);

    ProductVo getProductInfoByIdForEdit(Integer pid);

    Integer updateProduct(UpdateProductDto updateProductDto);
}
